/*
*  Copyright (C) 2009  Peter Kist & Jan Ripke
*
*  This program is free software: you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation, either version 3 of the License, or
*  (at your option) any later version.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

#include <core/Types.h>
#include <core/Spatial.h>
#include <world/Types.h>
#include <world/Entity.h>

#define LOGIC_GALAXY_SOLAR_MASS 1.9891e30

/** property names related to Star */
#define PROPERTY_GALAXY_POSITION "galaxy.position"
#define PROPERTY_GALAXY_MASS     "galaxy.star.mass"

namespace galaxy {
    namespace logic {
        namespace engine {
            namespace galaxy {

                class Star :
                    public world::Entity
                {
                    Star(void) { }; /** intentionally private */

                public:

                    static world::Entity::Type c_StarType;

                public:

                    Star (world::EntityPtr const & owner) : world::Entity (owner) { };
                    virtual ~Star(void) { };

                    virtual world::Entity::Type& getEntityType () { return Star::c_StarType; };
                };

            } // namespace galaxy
        } // namespace engine
    } // namespace logic
} // namespace galaxy
